﻿using System;

namespace InseSoft.Model.Entities
{
	public class SolicitudCotizacion: EntidadBase
	{
		#region Private Members
		private Empresa empresa; 
		private Cliente cliente; 
		private Usuario usuario; 
		private Vendedor vendedor; 
		private Material material; 
		private Linea linea; 
		private DateTime? fecha; 
		private TipoProducto tipoProducto; 
		private string producto; 
		private decimal productobase; 
		private decimal productoaltura; 
		private decimal productofondo; 
		private decimal materialbase; 
		private decimal materialaltura; 
		private decimal materialfondo; 
		private int tintas1Cara; 
		private int tintas2Cara; 
		private bool cuatricromia; 
		private bool troquel;
        private bool despiece; 
		private string cantidades; 
		private string observaciones; 
		private decimal rendimiento; 
		private decimal montaje; 
		private decimal cubrimiento; 
		private int cotizacionid; 
		private bool aplicada; 		
		#endregion
		
		#region Public Properties
				
		public virtual Empresa Empresa
		{
			get { return empresa; }
			set { isChanged |= (empresa != value); empresa = value; }
		}
				
		public virtual Cliente Cliente
		{
			get { return cliente; }
			set { isChanged |= (cliente != value); cliente = value; }
		}
				
		public virtual Usuario Usuario
		{
			get { return usuario; }
			set { isChanged |= (usuario != value); usuario = value; }
		}
				
		public virtual Vendedor Vendedor
		{
			get { return vendedor; }
			set { isChanged |= (vendedor != value); vendedor = value; }
		}
				
		public virtual Material Material
		{
			get { return material; }
			set { isChanged |= (material != value); material = value; }
		}
				
		public virtual Linea Linea
		{
			get { return linea; }
			set { isChanged |= (linea != value); linea = value; }
		}
				
		public virtual DateTime? Fecha
		{
			get { return fecha; }
			set { isChanged |= (fecha != value); fecha = value; }
		}
				
		public virtual TipoProducto TipoProducto
		{
			get { return tipoProducto; }
			set { isChanged |= (tipoProducto != value); tipoProducto = value; }
		}
				
		public virtual string Producto
		{
			get { return producto; }
			set	
			{
                CheckLength("Producto", value, 100);
				isChanged |= (producto != value); producto = value;
			}
		}
				
		public virtual decimal ProductoBase
		{
			get { return productobase; }
			set { isChanged |= (productobase != value); productobase = value; }
		}
				
		public virtual decimal ProductoAltura
		{
			get { return productoaltura; }
			set { isChanged |= (productoaltura != value); productoaltura = value; }
		}
				
		public virtual decimal ProductoFondo
		{
			get { return productofondo; }
			set { isChanged |= (productofondo != value); productofondo = value; }
		}
				
		public virtual decimal MaterialBase
		{
			get { return materialbase; }
			set { isChanged |= (materialbase != value); materialbase = value; }
		}
				
		public virtual decimal MaterialAltura
		{
			get { return materialaltura; }
			set { isChanged |= (materialaltura != value); materialaltura = value; }
		}
				
		public virtual decimal MaterialFondo
		{
			get { return materialfondo; }
			set { isChanged |= (materialfondo != value); materialfondo = value; }
		}
				
		public virtual int Tintas1Cara
		{
			get { return tintas1Cara; }
			set { isChanged |= (tintas1Cara != value); tintas1Cara = value; }
		}
				
		public virtual int Tintas2Cara
		{
			get { return tintas2Cara; }
			set { isChanged |= (tintas2Cara != value); tintas2Cara = value; }
		}
				
		public virtual bool Cuatricromia
		{
			get { return cuatricromia; }
			set { isChanged |= (cuatricromia != value); cuatricromia = value; }
		}
				
		public virtual bool Troquel
		{
			get { return troquel; }
			set { isChanged |= (troquel != value); troquel = value; }
		}
        
        public virtual bool Despiece
        {
            get { return despiece; }
            set { isChanged |= (despiece != value); despiece = value; }
        }
				
		public virtual string Cantidades
		{
			get { return cantidades; }
			set	
			{	
                CheckLength("Cantidades", value, 100);
				isChanged |= (cantidades != value); cantidades = value;
			}
		}
				
		public virtual string Observaciones
		{
			get { return observaciones; }
			set	
			{	
                CheckLength("Observaciones", value, 500);
				isChanged |= (observaciones != value); observaciones = value;
			}
		}
				
		public virtual decimal Rendimiento
		{
			get { return rendimiento; }
			set { isChanged |= (rendimiento != value); rendimiento = value; }
		}
				
		public virtual decimal Montaje
		{
			get { return montaje; }
			set { isChanged |= (montaje != value); montaje = value; }
		}
				
		public virtual decimal Cubrimiento
		{
			get { return cubrimiento; }
			set { isChanged |= (cubrimiento != value); cubrimiento = value; }
		}
				
		public virtual int CotizacionId
		{
			get { return cotizacionid; }
			set { isChanged |= (cotizacionid != value); cotizacionid = value; }
		}
				
		public virtual bool Aplicada
		{
			get { return aplicada; }
			set { isChanged |= (aplicada != value); aplicada = value; }
		}
				
		#endregion 
    }
}
